// 管理用户数据相关
import { defineStore } from 'pinia';
import { ref } from 'vue';
import { userInfoAPI } from '@/api/user.js';

// 定义用户Store，用于管理用户相关的状态和操作
export const useUserStore = defineStore('user', () => {
  // 1. 定义管理用户数据的state
  const userInfo = ref({});
  // 2. 定义获取接口数据的action函数
  const getUserInfo = async () => {
    // 从LocalStorage中获取用户token
    const token = localStorage.getItem("token")
    // 调用API获取用户信息，并更新到userInfo中
    const res = await userInfoAPI(token);
    userInfo.value = res.data.data;
  };

  // 退出时清除用户信息
  const clearUserInfo = () => {
    // 从LocalStorage中移除token
    localStorage.removeItem('token');
    // 清空用户信息
    userInfo.value = {};
  };
  // 3. 以对象的格式把state和action return
  return {
    userInfo, getUserInfo, clearUserInfo,
  };
}, {
  // 持久化存储配置，使状态在页面刷新后仍可恢复
  persist: true,
});
